// index.js
function formatTime(time){
  var minute = Math.floor(time / 60) % 60
  var second = Math.floor(time) % 60
  return (minute < 10 ? '0' + minute : minute) + ':' + (second < 10 ? '0' + second : second)
}
Page({
  data: {
    item: 0,
    tab:0,
    state: 'running',
    playIndex: 0,
    play: {
      currentTime: '00:00',
      duration: '00:00',
      percent: 0,
      title: '',
      singer: '',
      coverImgUrl:'/images/cover.jpg'
    },
    playlist: [{
        id: 1,
        title: '祝你生日快乐',
        singer: '小丽',
        src: 'http://127.0.0.1:3000/1.mp3',
        coverImgUrl: '/images/cover.jpg'
    },{
        id: 2,
        title: '劳动最光荣',
        singer: '小明',
        src: 'http://127.0.0.1:3000/2.mp3',
        coverImgUrl: '/images/cover.jpg'
    },{
      id: 3,
      title: '龙的传人',
      singer: '小华',
      src: 'http://127.0.0.1:3000/3.mp3',
      coverImgUrl: '/images/cover.jpg'
    },{
      id: 4,
      title: '小星星',
      singer: '小红',
      src: 'http://127.0.0.1:3000/4.mp3',
      coverImgUrl: '/images/cover.jpg'
    }],
  },
  
  audioBam: null,
  onReady: function() {
    this.audioBam = wx.getBackgroundAudioManager()
    this.setMusic(0)
    this.audioBam.onError(() => {
        console.log('播放失败:' + this.audioBam.src)
    })
    this.audioBam.onEnded(() => {
        this.next()
    })
    var updateTime = 0
    this.audioBam.onTimeUpdate(() => {
        var currentTime = parseInt(this.audioBam.currentTime)
        if(!this.sliderChangeLock && currentTime !== updateTime){
            updateTime = currentTime
            this.setData({
                'play.duration': formatTime(this.audioBam.duration || 0),
                'play.currentTime': formatTime(currentTime),
                'play.percent': currentTime / this.audioBam.duration * 100
            })
        }
    })
  },
  setMusic: function(index){
        var music = this.data.playlist[index]
        this.audioBam.src = music.src
        this.audioBam.title = music.title
        this.setData({
            playIndex: index,
            'play.title':music.title,
            'play.singer': music.singer,
            'play.coverImgUrl': music.coverImgUrl,
            'play.currentTime': '00:00',
            'play.duration': '00:00',
            'play.percent': 0,
            state: 'running'

        })
  },
  changeItem: function(e) {
    this.setData({
      item: e.target.dataset.item
    })
  },
  changeTab: function(e){
    this.setData({
      tab:e.detail.current
    })
  },
  play: function() {
      this.audioBam.play()
      this.setData({
          state:'running'
      })
  },
  pause: function() {
      this.audioBam.pause()
      this.setData({
          state: 'paused'
      })
  },
  next: function() {
      var index = this.data.playIndex >= this.data.playlist.length - 1 ? 0 : this.data.playIndex + 1
      this.setMusic(index)
  },
  sliderChangeLock: false,
sliderChanging: function(e) {
  var second = e.detail.value * this.audioBam.duration / 100
  this.sliderChangeLock = true
this.setData({
  'play.currentTime': formatTime(second),
})
},
sliderChange: function (e) {
  var second = e.detail.value * this.audioBam.duration / 100
  this.audioBam.seek(second)
  setTimeout(() => {
    this.sliderChangeLock = false
  },1000)
},
change: function(e){
  this.setMusic(e.currentTarget.dataset.index)
}
})
